Categorize Trees
- Portland Top-Dieback Probability Categories (10%)
- Most Concern (>10%): > 88.5
- Moderate Concern (2.5-10%): 84.32-88.5
- Lowest Concern (<2.5%): <84.32
- Portland Dieback Probability Cateogories (25%)
- Most Concern (>25%): >91.66
- Moderate Concern (5-25%): 86.48- 91.66
- Lowest Concern (<5%): <86.48
portland.most <- portland.combined %>% filter(DN_AF1>88.5)%>% mutate(Category1="Most Concern") %>% droplevels()
portland.mod <- portland.combined %>% filter(DN_AF1>84.32 & DN_AF1<88.5) %>% mutate(Category1="Moderate Concern") %>% droplevels()
portland.low <- portland.combined %>% filter(DN_AF1<84.32) %>% mutate(Category1="Lowest Concern") %>% droplevels()
portland.combined.cat <- bind_rows(list(portland.low,portland.mod,portland.most))
portland.most <- portland.combined.cat %>% filter(DN_AF1>86.5)%>% mutate(Category1Plus2="Most Concern") %>% droplevels()
portland.mod <- portland.combined.cat %>% filter(DN_AF1>82.32 & DN_AF1<86.5) %>% mutate(Category1Plus2="Moderate Concern") %>% droplevels()
portland.low <- portland.combined.cat %>% filter(DN_AF1<82.32) %>% mutate(Category1Plus2="Lowest Concern") %>% droplevels()
portland.combined.cat <- bind_rows(list(portland.low,portland.mod,portland.most))
portland.most <- portland.combined.cat %>% filter(DN_AF1>91.66)%>% mutate(Category25="Most Concern") %>% droplevels()
portland.mod <- portland.combined.cat %>% filter(DN_AF1>86.48 & DN_AF1<91.66) %>% mutate(Category25="Moderate Concern") %>% droplevels()
portland.low <- portland.combined.cat %>% filter(DN_AF1<86.48) %>% mutate(Category25="Lowest Concern") %>% droplevels()
portland.combined.cat <- bind_rows(list(portland.low,portland.mod,portland.most))
#P1 <- ggplot(data.top, aes(x=DN_AF1))+geom_histogram() + theme_bw()
- King County Top-Dieback Probability Categories (10%)
- Most Concern (>10%): >87.8
- Moderate Concern (2.5-10%): 85.22-87.8
- Lowest Concern (<2.5%): <85.22
- King County Top-Dieback Probability Categories (25%)
- Most Concern (>25%): 89.78
- Moderate Concern (5-25%): 86.5 - 89.78
- Lowest Concern (<5%): <86.5
seattle.most <- seattle.combined.back %>% filter(DN_AF1>87.8)%>% mutate(Category1="Most Concern") %>% droplevels()
seattle.mod <- seattle.combined.back %>% filter(DN_AF1>85.22 & DN_AF1<87.8) %>% mutate(Category1="Moderate Concern") %>% droplevels()
seattle.low <- seattle.combined.back %>% filter(DN_AF1<85.22) %>% mutate(Category1="Lowest Concern") %>% droplevels()
seattle.combined.cat <- bind_rows(list(seattle.low,seattle.mod,seattle.most))
seattle.most <- seattle.combined.cat %>% filter(DN_AF1>85.8)%>% mutate(Category1Plus2="Most Concern") %>% droplevels()
seattle.mod <- seattle.combined.cat%>% filter(DN_AF1>83.22 & DN_AF1<85.8) %>% mutate(Category1Plus2="Moderate Concern") %>% droplevels()
seattle.low <- seattle.combined.cat %>% filter(DN_AF1<83.22) %>% mutate(Category1Plus2="Lowest Concern") %>% droplevels()
seattle.combined.cat <- bind_rows(list(seattle.low,seattle.mod,seattle.most))
seattle.most <- seattle.combined.cat %>% filter(DN_AF1>89.78)%>% mutate(Category25="Most Concern") %>% droplevels()
seattle.mod <- seattle.combined.cat %>% filter(DN_AF1>86.5 & DN_AF1<89.78) %>% mutate(Category25="Moderate Concern") %>% droplevels()
seattle.low <- seattle.combined.cat%>% filter(DN_AF1<86.5) %>% mutate(Category25="Lowest Concern") %>% droplevels()
seattle.combined.cat <- bind_rows(list(seattle.low,seattle.mod,seattle.most))
87 trees in Seattle did not have UHI data. 1 tree in Portland did not
have UHI data.
Join City Data
cities <- full_join(seattle.combined.cat,portland.combined.cat,by = join_by(OBJECTID, DBH, DN_AF1, lat, lon, city, city.space,GlobalID,Category1,Category1Plus2,Category25))
Summarize Data
summary <- cities %>% group_by(city,city.space,Category1) %>% summarize(n=n(),meanAF=mean(DN_AF1,na.rm=TRUE),n_AF_na=sum(is.na(DN_AF1)))
## `summarise()` has grouped output by 'city', 'city.space'. You can override
## using the `.groups` argument.
summary
## # A tibble: 12 × 6
## # Groups: city, city.space [4]
## city city.space Category1 n meanAF n_AF_na
## <chr> <chr> <chr> <int> <dbl> <int>
## 1 Portland Park Lowest Concern 89 83.3 0
## 2 Portland Park Moderate Concern 266 87.6 0
## 3 Portland Park Most Concern 609 89.1 0
## 4 Portland Street Lowest Concern 84 83.2 0
## 5 Portland Street Moderate Concern 763 87.5 0
## 6 Portland Street Most Concern 867 89.0 0
## 7 Seattle Park Lowest Concern 5 83.8 0
## 8 Seattle Park Moderate Concern 434 87.1 0
## 9 Seattle Park Most Concern 371 88.5 0
## 10 Seattle Street Lowest Concern 44 84.3 0
## 11 Seattle Street Moderate Concern 1205 87.0 0
## 12 Seattle Street Most Concern 544 88.4 0
ggplot(summary,aes(n,city.space,fill=Category1))+geom_col(position=position_dodge(),alpha=0.7) +facet_wrap(~city) +theme_bw() + scale_fill_manual(name="Category",values=c("#7fcdbb","#fe9929","#DDA0DD")) +labs(x="Number of Trees",y="Tree Inventory")

summary <- cities %>% group_by(city,Category1) %>% summarize(n=n(),meanAF=mean(DN_AF1,na.rm=TRUE),n_AF_na=sum(is.na(DN_AF1)))
## `summarise()` has grouped output by 'city'. You can override using the
## `.groups` argument.
summary
## # A tibble: 6 × 5
## # Groups: city [2]
## city Category1 n meanAF n_AF_na
## <chr> <chr> <int> <dbl> <int>
## 1 Portland Lowest Concern 173 83.2 0
## 2 Portland Moderate Concern 1029 87.5 0
## 3 Portland Most Concern 1476 89.1 0
## 4 Seattle Lowest Concern 49 84.2 0
## 5 Seattle Moderate Concern 1639 87.0 0
## 6 Seattle Most Concern 915 88.4 0
Portland
summary1 <- portland.combined.cat %>% group_by(city.space,Category1) %>% summarize(n=n(),meanAF=mean(DN_AF1,na.rm=TRUE),n_AF_na=sum(is.na(DN_AF1)))
## `summarise()` has grouped output by 'city.space'. You can override using the
## `.groups` argument.
summary1
## # A tibble: 6 × 5
## # Groups: city.space [2]
## city.space Category1 n meanAF n_AF_na
## <chr> <chr> <int> <dbl> <int>
## 1 Park Lowest Concern 89 83.3 0
## 2 Park Moderate Concern 266 87.6 0
## 3 Park Most Concern 609 89.1 0
## 4 Street Lowest Concern 84 83.2 0
## 5 Street Moderate Concern 763 87.5 0
## 6 Street Most Concern 867 89.0 0
summary1Plus2 <- portland.combined.cat %>% group_by(city.space,Category1Plus2) %>% summarize(n=n(),meanAF=mean(DN_AF1,na.rm=TRUE),n_AF_na=sum(is.na(DN_AF1)))
## `summarise()` has grouped output by 'city.space'. You can override using the
## `.groups` argument.
summary1
## # A tibble: 6 × 5
## # Groups: city.space [2]
## city.space Category1 n meanAF n_AF_na
## <chr> <chr> <int> <dbl> <int>
## 1 Park Lowest Concern 89 83.3 0
## 2 Park Moderate Concern 266 87.6 0
## 3 Park Most Concern 609 89.1 0
## 4 Street Lowest Concern 84 83.2 0
## 5 Street Moderate Concern 763 87.5 0
## 6 Street Most Concern 867 89.0 0
summary25 <- portland.combined.cat %>% group_by(city.space,Category25) %>% summarize(n=n(),meanAF=mean(DN_AF1,na.rm=TRUE),n_AF_na=sum(is.na(DN_AF1)))
## `summarise()` has grouped output by 'city.space'. You can override using the
## `.groups` argument.
summary25
## # A tibble: 4 × 5
## # Groups: city.space [2]
## city.space Category25 n meanAF n_AF_na
## <chr> <chr> <int> <dbl> <int>
## 1 Park Lowest Concern 134 84.1 0
## 2 Park Moderate Concern 830 88.8 0
## 3 Street Lowest Concern 232 84.7 0
## 4 Street Moderate Concern 1482 88.6 0
ggplot(summary1,aes(n,city.space,fill=Category1))+geom_col(position=position_dodge(),alpha=0.7) +theme_bw() + scale_fill_manual(name="Category 1",values=c("#7fcdbb","#fe9929","#DDA0DD")) +labs(x="Number of Trees",y="Tree Inventory")

ggplot(summary1Plus2,aes(n,city.space,fill=Category1Plus2))+geom_col(position=position_dodge(),alpha=0.7) +theme_bw() + scale_fill_manual(name="Category 1 plus 2",values=c("#7fcdbb","#fe9929","#DDA0DD")) +labs(x="Number of Trees",y="Tree Inventory")

ggplot(summary25,aes(n,city.space,fill=Category25))+geom_col(position=position_dodge(),alpha=0.7) +theme_bw() + scale_fill_manual(name="Category 25",values=c("#7fcdbb","#fe9929","#DDA0DD")) +labs(x="Number of Trees",y="Tree Inventory")

Portland Map
portbb <- c(left = min(portland.combined.cat$lon),
bottom = min(portland.combined.cat$lat),
right = max(portland.combined.cat$lon),
top = max(portland.combined.cat$lat))
portmap <- get_map(portbb, zoom = 11, scale = 2, maptype="terrain",source="google")
## ! Bounding box given to Google - spatial extent only approximate.
## ℹ <https://maps.googleapis.com/maps/api/staticmap?center=45.543068,-122.632381&zoom=11&size=640x640&scale=2&maptype=terrain&language=en-EN&key=xxx>
portland.map <- ggmap(portmap) + geom_point(data = portland.combined.cat, aes(x = lon, y = lat,fill=DN_AF1), color = "black",pch=21, size = 3) + theme_minimal() +scale_fill_viridis_c(option = "inferno")+labs(title="Portland",x="Longitude",y="Latitude",fill="Afternoon\nTemp (F)") +theme(plot.title = element_text(size = 14, hjust = .5,face = "bold.italic"))
portland.map

portland.map.cat1 <- ggmap(portmap) + geom_point(data = portland.combined.cat, aes(x = lon, y = lat,fill=Category1), color = "black",pch=21, size = 3) + theme_minimal() +scale_fill_manual(name="Category",values=c("#DDA0DD","#7fcdbb","#fe9929"))+labs(title="Portland",x="Longitude",y="Latitude",fill="Conservation\nCategory") +theme(plot.title = element_text(size = 14, hjust = .5,face = "bold.italic"))
portland.map.cat1Plus2 <- ggmap(portmap) + geom_point(data = portland.combined.cat, aes(x = lon, y = lat,fill=Category1Plus2), color = "black",pch=21, size = 3) + theme_minimal() +scale_fill_manual(name="Category",values=c("#DDA0DD","#7fcdbb","#fe9929"))+labs(title="Portland",x="Longitude",y="Latitude",fill="Conservation\nCategory") +theme(plot.title = element_text(size = 14, hjust = .5,face = "bold.italic"))
portland.map.cat25 <- ggmap(portmap) + geom_point(data = portland.combined.cat, aes(x = lon, y = lat,fill=Category25), color = "black",pch=21, size = 3) + theme_minimal() +scale_fill_manual(name="Category",values=c("#DDA0DD","#7fcdbb","#fe9929"))+labs(title="Portland",x="Longitude",y="Latitude",fill="Conservation\nCategory") +theme(plot.title = element_text(size = 14, hjust = .5,face = "bold.italic"))
portland.map.cat1 <- portland.map.cat1 +labs(title="0.1 Probability") + theme(legend.position = "none")
portland.map.cat1Plus2 <- portland.map.cat1Plus2 +labs(title="0.1 Probability at 2 degrees higher") + theme(legend.position = "none",axis.title.y = element_blank())
portland.map.cat25 <- portland.map.cat25 +labs(title="0.25 Probability") + theme(axis.title.y = element_blank())
portland.map.cat1 + portland.map.cat1Plus2 + portland.map.cat25

Seattle
summary1 <- seattle.combined.cat %>% group_by(city.space,Category1) %>% summarize(n=n(),meanAF=mean(DN_AF1,na.rm=TRUE),n_AF_na=sum(is.na(DN_AF1)))
## `summarise()` has grouped output by 'city.space'. You can override using the
## `.groups` argument.
summary1
## # A tibble: 6 × 5
## # Groups: city.space [2]
## city.space Category1 n meanAF n_AF_na
## <chr> <chr> <int> <dbl> <int>
## 1 Park Lowest Concern 5 83.8 0
## 2 Park Moderate Concern 434 87.1 0
## 3 Park Most Concern 371 88.5 0
## 4 Street Lowest Concern 44 84.3 0
## 5 Street Moderate Concern 1205 87.0 0
## 6 Street Most Concern 544 88.4 0
summary1Plus2 <- seattle.combined.cat %>% group_by(city.space,Category1Plus2) %>% summarize(n=n(),meanAF=mean(DN_AF1,na.rm=TRUE),n_AF_na=sum(is.na(DN_AF1)))
## `summarise()` has grouped output by 'city.space'. You can override using the
## `.groups` argument.
summary1
## # A tibble: 6 × 5
## # Groups: city.space [2]
## city.space Category1 n meanAF n_AF_na
## <chr> <chr> <int> <dbl> <int>
## 1 Park Lowest Concern 5 83.8 0
## 2 Park Moderate Concern 434 87.1 0
## 3 Park Most Concern 371 88.5 0
## 4 Street Lowest Concern 44 84.3 0
## 5 Street Moderate Concern 1205 87.0 0
## 6 Street Most Concern 544 88.4 0
summary25 <- seattle.combined.cat %>% group_by(city.space,Category25) %>% summarize(n=n(),meanAF=mean(DN_AF1,na.rm=TRUE),n_AF_na=sum(is.na(DN_AF1)))
## `summarise()` has grouped output by 'city.space'. You can override using the
## `.groups` argument.
summary25
## # A tibble: 6 × 5
## # Groups: city.space [2]
## city.space Category25 n meanAF n_AF_na
## <chr> <chr> <int> <dbl> <int>
## 1 Park Lowest Concern 90 86.0 0
## 2 Park Moderate Concern 706 87.9 0
## 3 Park Most Concern 14 90.2 0
## 4 Street Lowest Concern 302 85.8 0
## 5 Street Moderate Concern 1474 87.6 0
## 6 Street Most Concern 17 90.4 0
ggplot(summary1,aes(n,city.space,fill=Category1))+geom_col(position=position_dodge(),alpha=0.7) +theme_bw() + scale_fill_manual(name="Category",values=c("#DDA0DD","#7fcdbb","#fe9929")) +labs(x="Number of Trees",y="Tree Inventory")

ggplot(summary1Plus2,aes(n,city.space,fill=Category1Plus2))+geom_col(position=position_dodge(),alpha=0.7) +theme_bw() + scale_fill_manual(name="Category",values=c("#DDA0DD","#7fcdbb","#fe9929")) +labs(x="Number of Trees",y="Tree Inventory")

ggplot(summary25,aes(n,city.space,fill=Category25))+geom_col(position=position_dodge(),alpha=0.7) +theme_bw() + scale_fill_manual(name="Category",values=c("#DDA0DD","#7fcdbb","#fe9929")) +labs(x="Number of Trees",y="Tree Inventory")

Seattle Map
seabb <- c(left = min(seattle.combined.cat$lon),
bottom = min(seattle.combined.cat$lat),
right = max(seattle.combined.cat$lon),
top = max(seattle.combined.cat$lat))
seamap <- get_map(seabb, zoom = 11, scale = 2, maptype="terrain",source="google")
## ! Bounding box given to Google - spatial extent only approximate.
## ℹ <https://maps.googleapis.com/maps/api/staticmap?center=47.616324,-122.334218&zoom=11&size=640x640&scale=2&maptype=terrain&language=en-EN&key=xxx>
seattle.map <- ggmap(seamap) + geom_point(data = seattle.combined.cat, aes(x = lon, y = lat,fill=DN_AF1), color = "black",pch=21, size = 3) + theme_minimal() +scale_fill_viridis_c(option = "inferno")+labs(title="Seattle",x="Longitude",y="Latitude",fill="Afternoon\nTemp (F)") +theme(plot.title = element_text(size = 14, hjust = .5,face = "bold.italic"))
seattle.map

seattle.map.cat1 <- ggmap(seamap) + geom_point(data = seattle.combined.cat, aes(x = lon, y = lat,fill=Category1), color = "black",pch=21, size = 3) + theme_minimal() +scale_fill_manual(name="Category",values=c("#DDA0DD","#7fcdbb","#fe9929"))+labs(title="Seattle",x="Longitude",y="Latitude",fill="Conservation\nCategory") +theme(plot.title = element_text(size = 14, hjust = .5,face = "bold.italic"))
seattle.map.cat1Plus2 <- ggmap(seamap) + geom_point(data = seattle.combined.cat, aes(x = lon, y = lat,fill=Category1Plus2), color = "black",pch=21, size = 3) + theme_minimal() +scale_fill_manual(name="Category",values=c("#DDA0DD","#7fcdbb","#fe9929"))+labs(title="Seattle",x="Longitude",y="Latitude",fill="Conservation\nCategory") +theme(plot.title = element_text(size = 14, hjust = .5,face = "bold.italic"))
seattle.map.cat25 <- ggmap(seamap) + geom_point(data = seattle.combined.cat, aes(x = lon, y = lat,fill=Category25), color = "black",pch=21, size = 3) + theme_minimal() +scale_fill_manual(name="Category",values=c("#DDA0DD","#7fcdbb","#fe9929"))+labs(title="Seattle",x="Longitude",y="Latitude",fill="Conservation\nCategory") +theme(plot.title = element_text(size = 14, hjust = .5,face = "bold.italic"))
seattle.map.cat1 <- seattle.map.cat1 +labs(title="0.1 Probability") + theme(legend.position = "none")
seattle.map.cat1Plus2 <- seattle.map.cat1Plus2 +labs(title="0.1 Probability at 2 degrees higher") + theme(legend.position = "none",axis.title.y = element_blank())
seattle.map.cat25 <- seattle.map.cat25 +labs(title="0.25 Probability") + theme(axis.title.y = element_blank())
seattle.map.cat1 + seattle.map.cat1Plus2 + seattle.map.cat25

portland.map.cat1 <- ggmap(portmap) + geom_point(data = portland.combined.cat, aes(x = lon, y = lat,fill=Category1), color = "black",pch=21, size = 3) + theme_minimal() +scale_fill_manual(name="Category",values=c("#DDA0DD","#7fcdbb","#fe9929"))+labs(title="Portland",x="Longitude",y="Latitude",fill="Conservation\nCategory") +theme(plot.title = element_text(size = 14, hjust = .5,face = "bold.italic"))
seattle.map <- seattle.map + theme(legend.position = "none",axis.title.x = element_blank())
seattle.map.cat <- seattle.map.cat1 + theme(legend.position = "none",plot.title = element_blank())
portland.map <- portland.map +theme(axis.title.x = element_blank(),axis.title.y = element_blank())
portland.map.cat <- portland.map.cat1 +theme(plot.title = element_blank(),axis.title.y = element_blank())
#+ theme(legend.position = "none",,)
(seattle.map | portland.map) / (seattle.map.cat | portland.map.cat)
